#ifndef __WIZ_SP_BOUNDS_HPP__SHANHAOBO_19800429__
#define __WIZ_SP_BOUNDS_HPP__SHANHAOBO_19800429__

#include "./WizSPForwardDeclare.hpp"

namespace Wiz
{
    namespace SP
    {
        namespace Bounds
        {
            template<class LocationT, class WorldSizeT>
            struct Type
            {
                typedef LocationT   tLocation;

                typedef WorldSizeT  tWorldSize;

                tLocation           m_Min;      /// Left  Bottom Near
                tLocation           m_Max;      /// Right Top    Far
                tLocation           m_Origin;
                tWorldSize          m_Radius;

                Type (tLocation const & InOrig, tWorldSize const & InRadius)
                    : m_Origin(InOrig)
                    , m_Radius(InRadius)
                {
                    m_Min = InOrig - InRadius;
                    m_Max = InOrig + InRadius;
                }

                tLocation & GerOrigin()
                {
                    return m_Origin;
                }

                tWorldSize & GetRadius()
                {
                    return m_Radius;
                }

                tLocation const & GerOrigin() const
                {
                    return m_Origin;
                }

                tWorldSize const & GetRadius() const
                {
                    return m_Radius;
                }
            };
        } /// end of namespace Bounds
    } /// end of namespace SP
} /// end of namespace Wiz

#endif /*__WIZ_SP_BOUNDS_HPP__SHANHAOBO_19800429__*/
